package _sealed;

/**
 * 要求指定的子类必须是final、sealed、non-sealed三者之一
 */

// Person 是一个密封类，可以被指定的类继承，非指定的类不能继承Person类。
public sealed class Person permits Student, Teacher, Worker {

}

// 不能再被继承了
final class Student extends Person {
}

// 只能被指定的类进行继承
sealed class Teacher extends Person permits EnglishTeacher {
}

// 在继承时，没有任何限制
non-sealed class Worker extends Person {
}

final class EnglishTeacher extends Teacher {
}